package cn.tedu.tmall.front.mall.controller;

import cn.tedu.tmall.common.pojo.CurrentUser;
import cn.tedu.tmall.common.pojo.PageData;
import cn.tedu.tmall.common.web.JsonResult;
import cn.tedu.tmall.front.mall.pojo.parm.OrderAddParam;
import cn.tedu.tmall.front.mall.pojo.vo.OrderListVO;
import cn.tedu.tmall.front.mall.service.IOrderService;
import com.sun.org.apache.bcel.internal.generic.INEG;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;

import javax.annotation.Resource;
import java.util.jar.JarEntry;

@Slf4j
@Api(tags = "订单服务")
@RequestMapping("/order")
@RestController
@Validated
public class OrderController {
    @Resource
    private IOrderService orderService;

    @PostMapping("create")
    @ApiOperation("创建")
    public JsonResult  create(@ApiIgnore @AuthenticationPrincipal CurrentUser user,
                           @RequestBody OrderAddParam orderAddParam) {
        orderService.createOrder(user,orderAddParam);
        return JsonResult.ok();
    }
    @PostMapping("list")
    @ApiOperation("订单列表")
    public JsonResult  list(@ApiIgnore @AuthenticationPrincipal CurrentUser user,
                            @RequestPart Integer pageSize,
                            @RequestPart Integer pageNum) {
        PageData<OrderListVO> order= orderService.listOrder(user,pageSize,pageNum);
        return JsonResult.ok(order);
    }

    //订单列表
    // 入参 用户信息  扩展信息 订单创建时间 订单编号 商品信息 订单状态
    // 出参 1 订单基本信息 订单创建时间 订单号  订单状态 2 商品信息 3 用户信息 4 支付信息

    //订单详情
    // 入参 订单号(编号唯一) ,用户信息  看自己的订单
    // 出参 我们创建订单的入参可以作为订单详情的出参

}
